The present invention relates generally to a graphics system, and more specifically to a system for issuing and retrieving drawing commands.
Modern computer systems consist of application programs which provide video commands and associated data to a video subsystem in order provide a desired image upon a display. Because video commands take a varied amount of time for a video engine to process, some kind of buffering is desirable between the application program and the video engine. As a result, most video subsystems provide some kind of acceptable buffering of video commands and their data. A common type of buffer is a circular command buffer, which receives drawing requests from a client, and stores as many of requests as possible until the buffer is full.
By using a circular buffer, a client, such as a application driver, can provide many commands to the command buffer when it has access to the appropriate bus resources. Because drawing commands can be quite large, buffers are often used that are capable of supporting both a large number of commands, and commands having a large size due to the associated data. Such buffers allow the graphics engine to receive commands from the command buffer even when other system clients need bus resources.
A disadvantage with the large circular buffer is that the display engine can take a significant amount of time, a minute or more, to execute all of the pending video commands when the number of commands is large. During this time the system appears unresponsive. As a result, when a user attempts to perform another function, such as close a window, the function will be delayed by that latency until all of the video commands are issued. The resulting delay viewed by the user gives the perception that the system is slow, when in actuality it is a result of the architecture of the video subsystem that cause the delay.
Therefore, a better system and method capable of governing the number of issued commands such that the response viewed by the user is improved would be desirable.